library(igraph)
## 
## Attaching package: 'igraph'
## The following objects are masked from 'package:stats':
## 
##     decompose, spectrum
## The following object is masked from 'package:base':
## 
##     union
library(igraphdata)
library(knitr)
library(rmarkdown)

# load raw edges data ----
edgelist <- read.csv("https://raw.githubusercontent.com/weisse-rose/Weisse-Rose/master/edgelist.csv",header=T, as.is=T, sep=",")

# load raw nodes data ----
nodelist <- read.csv("https://raw.githubusercontent.com/weisse-rose/Weisse-Rose/master/nodelist.csv",header=T, as.is=T, sep=",")

# Überprüfen der Daten
head(edgelist)
##   from to relationship time
## 1   hs ss            2    1
## 2   hs kh            1    6
## 3   hs wg            1   10
## 4   hs hl            1   10
## 5   hs cp            1    1
## 6   hs as            1    1
head(nodelist)
##   id                name sex age hometown occupation
## 1 hs         hans scholl   1   2        1          1
## 2 ss       sophie scholl   2   2        1          1
## 3 kh          kurt huber   1   4        1          3
## 4 wg          willi graf   1   2        1          1
## 5 cp    christoph probst   1   2        2          1
## 6 as alexander schmorell   1   2        1          1
# create network ----
edges <- as.matrix(edgelist)
nodes <- as.matrix(nodelist)
wr <-  graph_from_data_frame(d=edges, vertices=nodelist, directed=F)
plot(wr, main="Gesamtnetzwerk Weiße Rose")

list.edge.attributes(wr)
## [1] "relationship" "time"
E(wr)$arrow.size <- .2 # definiert die Pfeilspitze auf Größe .2
E(wr)$curved <- .2 # definiert die Krümmung der Kanten
list.edge.attributes(wr) # zeigt die neu definierten Attribute an.
## [1] "relationship" "time"         "arrow.size"   "curved"
edge.attributes(wr)$relationship
##   [1] "2" "1" "1" "1" "1" "1" "1" "1" "1" "1" "3" "2" "1" "1" "3" "3" "3"
##  [18] "3" "1" "1" "1" "1" "1" "1" "3" "3" "1" "1" "3" "3" "1" "1" "1" "1"
##  [35] "1" "1" "3" "3" "7" "3" "1" "1" "1" "1" "1" "1" "1" "3" "3" "1" "1"
##  [52] "1" "7" "1" "1" "3" "1" "1" "1" "1" "1" "3" "5" "3" "1" "1" "3" "5"
##  [69] "3" "3" "2" "1" "1" "1" "1" "1" "1" "1" "1" "1" "3" "7" "1" "3" "1"
##  [86] "1" "1" "1" "1" "1" "1" "1" "1" "1" "5" "2" "5" "5" "1" "2" "3" "3"
## [103] "1" "1" "1" "1" "1" "1" "1" "1" "2" "1" "1" "1" "1" "1" "1" "1" "1"
## [120] "1" "1" "1" "4" "1" "1" "2" "3" "3" "3" "3" "3" "1" "3" "3" "3" "3"
## [137] "3" "3" "3" "3" "3" "3" "3" "3"
edge.attributes(wr)$time
##   [1] " 1" " 6" "10" "10" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1"
##  [15] " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1"
##  [29] " 1" " 1" " 1" " 6" " 1" " 1" " 1" " 1" " 6" " 1" " 6" " 1" " 1" " 1"
##  [43] "10" " 1" "10" " 1" " 6" "10" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 2"
##  [57] " 6" " 6" " 6" " 6" " 6" " 6" " 1" " 4" " 1" " 1" " 4" " 1" " 6" "10"
##  [71] " 1" " 1" "10" " 1" " 1" " 1" " 1" " 6" " 1" " 1" " 1" " 1" " 1" " 6"
##  [85] " 1" "10" " 1" "10" " 1" " 1" " 1" "10" " 6" " 1" "10" " 1" "10" "10"
##  [99] " 1" " 1" " 1" " 1" " 1" " 1" " 1" "10" "10" " 6" "10" "10" " 1" "10"
## [113] "10" "10" "10" "10" "10" "10" "10" "10" "10" "10" " 1" " 1" " 1" " 1"
## [127] "99" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1"
## [141] " 1" " 1" " 1" " 1"
# setzt den Wert rot für alle Werte 2 des Edge-Attributs time = Flugblatt 1 ---
edge.attributes(wr)$time
##   [1] " 1" " 6" "10" "10" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1"
##  [15] " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1"
##  [29] " 1" " 1" " 1" " 6" " 1" " 1" " 1" " 1" " 6" " 1" " 6" " 1" " 1" " 1"
##  [43] "10" " 1" "10" " 1" " 6" "10" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 2"
##  [57] " 6" " 6" " 6" " 6" " 6" " 6" " 1" " 4" " 1" " 1" " 4" " 1" " 6" "10"
##  [71] " 1" " 1" "10" " 1" " 1" " 1" " 1" " 6" " 1" " 1" " 1" " 1" " 1" " 6"
##  [85] " 1" "10" " 1" "10" " 1" " 1" " 1" "10" " 6" " 1" "10" " 1" "10" "10"
##  [99] " 1" " 1" " 1" " 1" " 1" " 1" " 1" "10" "10" " 6" "10" "10" " 1" "10"
## [113] "10" "10" "10" "10" "10" "10" "10" "10" "10" "10" " 1" " 1" " 1" " 1"
## [127] "99" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1"
## [141] " 1" " 1" " 1" " 1"
plot(wr, 
     edge.color=c("red", "black")[(E(wr)$time=="2")+1],
     edge.width=1.5,
     edge.curved=.2,
     vertex.size=10,
     vertex.color="grey",
     vertex.frame.color="grey",
     layout=layout_with_kk(wr),
     main="Gesamtnetzwerk Weiße Rose", 
     sub="Beziehungen während Flugblatt 1 sind rot gekennzeichnet")

# setzt den Wert rot für alle Werte 10 des Edge-Attributs time = Flugblatt 1-4 ---
edge.attributes(wr)$time
##   [1] " 1" " 6" "10" "10" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1"
##  [15] " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1"
##  [29] " 1" " 1" " 1" " 6" " 1" " 1" " 1" " 1" " 6" " 1" " 6" " 1" " 1" " 1"
##  [43] "10" " 1" "10" " 1" " 6" "10" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 2"
##  [57] " 6" " 6" " 6" " 6" " 6" " 6" " 1" " 4" " 1" " 1" " 4" " 1" " 6" "10"
##  [71] " 1" " 1" "10" " 1" " 1" " 1" " 1" " 6" " 1" " 1" " 1" " 1" " 1" " 6"
##  [85] " 1" "10" " 1" "10" " 1" " 1" " 1" "10" " 6" " 1" "10" " 1" "10" "10"
##  [99] " 1" " 1" " 1" " 1" " 1" " 1" " 1" "10" "10" " 6" "10" "10" " 1" "10"
## [113] "10" "10" "10" "10" "10" "10" "10" "10" "10" "10" " 1" " 1" " 1" " 1"
## [127] "99" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1" " 1"
## [141] " 1" " 1" " 1" " 1"
plot(wr, 
     edge.color=c("red", "black")[(E(wr)$time=="10")+1],
     edge.width=1.5,
     edge.curved=.2,
     vertex.size=10,
     vertex.color="grey",
     vertex.frame.color="grey",
     layout=layout_with_kk(wr),
     main="Gesamtnetzwerk Weiße Rose", 
     sub="Beziehungen während Flugblätter 1-4 sind rot gekennzeichnet")

list.vertex.attributes(wr)
## [1] "name"       "sex"        "age"        "hometown"   "occupation"
vertex.attributes(wr)$name
##  [1] "hans scholl"              "sophie scholl"           
##  [3] "kurt huber"               "willi graf"              
##  [5] "christoph probst"         "alexander schmorell"     
##  [7] "fritz hartnagel"          "traute lafrenz"          
##  [9] "hubert furtwaengler"      "theodor haecker"         
## [11] "hans hirzel"              "franz j. mueller"        
## [13] "susanne hirzel"           "heinrich guter"          
## [15] "heinz brenner"            "manfred eickemeyer"      
## [17] "wilhelm geyer"            "hellmut hartert"         
## [19] "eduard borchers"          "willi habermann"         
## [21] "carl muth"                "werner bergengruen"      
## [23] "juergen wittenstein"      "eugen grimminger"        
## [25] "josef furtmeier"          "josef soehngen"          
## [27] "heinrich drexel"          "dr. falk harnack"        
## [29] "harald dohrn"             "gisela schertling"       
## [31] "lilo ramdohr"             "nikolajeff hamazaspian"  
## [33] "angelika probst"          "angelika knoop"          
## [35] "elise probst"             "martin buber"            
## [37] "katharina schüddekopf"    "kunsthistoriker stepanow"
## [39] "anneliese knoop-graf"     "walter koch"             
## [41] "dieter sasse"             "helmut bauer"            
## [43] "heinz bollinger"          "willi bollinger"         
## [45] "alfred von martin"        "sigismund von radecki"   
## [47] "margareta rothe"          "albert suhr"             
## [49] "heinz kucharski"          "arvid harnack"           
## [51] "hans leipelt"             "reinhold meyer"          
## [53] "hannelore willbrandt"     "karl ludwig schneider"
vertex.attributes(wr)$sex
##  [1] 1 2 1 1 1 1 1 2 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 2 2 2
## [36] 1 2 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 2 1
vertex.attributes(wr)$age
##  [1]  2  2  4  2  2  2  2  2  2  6  1  1  2  1  1  3  4  2  5  2  7  5  2
## [24]  5  5  4  2  2  5  2  2 99 99 99 99  6  2 99  2  2  1  2  2  2  6  5
## [47]  2  2  2  4  2  2  2  2
vertex.attributes(wr)$hometown
##  [1]  1  1  1  1  2  1  1  1  1  1  3  3  7  3  3  1  3  5  1 99  1  6  1
## [24]  3  1  1  1  1  1  1  1 11  1 10  1 99  1  1  1  2 99 12 12 12 99 99
## [47]  4  4  4  5  1  4  4  4
vertex.attributes(wr)$occupation
##  [1]  1  1  3  1  1  1  6  1  1  3  2  2  1  2  6  3  3  1  1 99  5  5  1
## [24]  3  5  3  1  3  3  1  3 99  1 99 99  3  1  3  1  1  6 99 99  3  3  3
## [47]  1  1  1  3  1  1  3  1
# setzt den Wert blau für sex 1 und orange für sex 2 ein
vertex.attributes(wr)$sex
##  [1] 1 2 1 1 1 1 1 2 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 2 2 2
## [36] 1 2 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 2 1
V(wr)[V(wr)$sex=="1"]$color <- "lightblue"
V(wr)[V(wr)$sex=="2"]$color <- "orange"

# Beste Visualisierung
durchmesser <- layout_nicely(wr)
durchmesser <- norm_coords(durchmesser, ymin=-1, ymax=1, xmin=-1, xmax=1)

plot(wr, 
     vertex.size=70, 
     edge.curved=.2, 
     edge.arrow.size=.1,
     rescale=FALSE, 
     layout=durchmesser*13.0,
     ylim=c(-13.0,15.0),
     xlim=c(-15.0,15.0),
     asp=0,
     layout=layout_nicely, 
     main="Gesamtnetzwerk Weiße Rose",
     sub="Vertex-Attribute: sex 1 (männlich) = lightblue, sex 2 (weiblich) = orange")

# setzt den Wert blau=München(1), rot=Ulm(3), grün=Hamburg(4), pink=Stuttgart(7) ein
vertex.attributes(wr)$hometown
##  [1]  1  1  1  1  2  1  1  1  1  1  3  3  7  3  3  1  3  5  1 99  1  6  1
## [24]  3  1  1  1  1  1  1  1 11  1 10  1 99  1  1  1  2 99 12 12 12 99 99
## [47]  4  4  4  5  1  4  4  4
V(wr)[V(wr)$hometown=="1"]$color <- "blue"
V(wr)[V(wr)$hometown=="3"]$color <- "red"
V(wr)[V(wr)$hometown=="4"]$color <- "green"
V(wr)[V(wr)$hometown=="7"]$color <- "yellow"
V(wr)[V(wr)$hometown=="2"]$color <- "white"
V(wr)[V(wr)$hometown=="5"]$color <- "white"
V(wr)[V(wr)$hometown=="6"]$color <- "white"
V(wr)[V(wr)$hometown=="10"]$color <- "white"
V(wr)[V(wr)$hometown=="11"]$color <- "white"
V(wr)[V(wr)$hometown=="12"]$color <- "white"
V(wr)[V(wr)$hometown=="99"]$color <- "white"
plot(wr,
     vertex.size=70, 
     edge.curved=.2, 
     edge.arrow.size=.1, 
     layout=durchmesser*13.0, 
     rescale=FALSE, 
     ylim=c(-13.0,15.0),
     xlim=c(-15.0,15.0),
     asp=0,
     layout=layout_nicely, 
     main="Gesamtnetzwerk Weiße Rose",
     sub="Vertex-Attribut hometown blau=München, rot=Ulm, grün=Hamburg, yellow=Stuttgart")

# Vorbereitung für Cluster-Berechnung
?cluster_walktrap
wr
## IGRAPH cce6c84 UN-- 54 144 -- 
## + attr: name (v/c), sex (v/n), age (v/n), hometown (v/n),
## | occupation (v/n), color (v/c), relationship (e/c), time (e/c),
## | arrow.size (e/n), curved (e/n)
## + edges from cce6c84 (vertex names):
##  [1] hans scholl--sophie scholl       hans scholl--kurt huber         
##  [3] hans scholl--willi graf          hans scholl--hans leipelt       
##  [5] hans scholl--christoph probst    hans scholl--alexander schmorell
##  [7] hans scholl--fritz hartnagel     hans scholl--traute lafrenz     
##  [9] hans scholl--hubert furtwaengler hans scholl--theodor haecker    
## [11] hans scholl--hans hirzel         hans hirzel--susanne hirzel     
## + ... omitted several edges
gc <- cluster_walktrap(wr)
modularity(gc)
## [1] 0.2920284
membership(gc)
##              hans scholl            sophie scholl               kurt huber 
##                        1                        1                        1 
##               willi graf         christoph probst      alexander schmorell 
##                        1                        1                        3 
##          fritz hartnagel           traute lafrenz      hubert furtwaengler 
##                        1                        2                        1 
##          theodor haecker              hans hirzel         franz j. mueller 
##                        1                        4                        4 
##           susanne hirzel           heinrich guter            heinz brenner 
##                        4                        4                        4 
##       manfred eickemeyer            wilhelm geyer          hellmut hartert 
##                        1                        1                        5 
##          eduard borchers          willi habermann                carl muth 
##                        5                        1                        1 
##       werner bergengruen      juergen wittenstein         eugen grimminger 
##                        1                        1                        1 
##          josef furtmeier           josef soehngen          heinrich drexel 
##                        1                        1                        1 
##         dr. falk harnack             harald dohrn        gisela schertling 
##                        3                        1                        1 
##             lilo ramdohr   nikolajeff hamazaspian          angelika probst 
##                        3                        3                        3 
##           angelika knoop             elise probst             martin buber 
##                        3                        3                        3 
##    katharina schüddekopf kunsthistoriker stepanow     anneliese knoop-graf 
##                        1                        1                        1 
##              walter koch             dieter sasse             helmut bauer 
##                        6                        7                        1 
##          heinz bollinger          willi bollinger        alfred von martin 
##                        1                        1                        1 
##    sigismund von radecki          margareta rothe              albert suhr 
##                        1                        2                        2 
##          heinz kucharski            arvid harnack             hans leipelt 
##                        2                        8                        2 
##           reinhold meyer     hannelore willbrandt    karl ludwig schneider 
##                        2                        9                        2
par(mfrow=c(1,1), mar=c(0,0,1,2))

# Beste Visualisierung
durchmesser <- layout_with_fr(wr)
durchmesser <- norm_coords(durchmesser, ymin=-1, ymax=1, xmin=-1, xmax=1)

plot(gc, 
     wr,
     edge.color=c("black"),
     edge.width=1,
     edge.curved=.2,
     vertex.size=110,
     edge.arrow.size=.2,
     layout=durchmesser*13.0, 
     rescale=FALSE, 
     ylim=c(-13.0,15.0),
     xlim=c(-15.0,15.0),
     asp=0, 
     main="Clusteranalyse des Gesamtnetzwerks")

degree(wr)
##              hans scholl            sophie scholl               kurt huber 
##                       36                       23                       19 
##               willi graf         christoph probst      alexander schmorell 
##                       25                       19                       20 
##          fritz hartnagel           traute lafrenz      hubert furtwaengler 
##                        2                       11                        1 
##          theodor haecker              hans hirzel         franz j. mueller 
##                        4                        5                        5 
##           susanne hirzel           heinrich guter            heinz brenner 
##                        6                        3                        4 
##       manfred eickemeyer            wilhelm geyer          hellmut hartert 
##                        2                        2                        2 
##          eduard borchers          willi habermann                carl muth 
##                        2                        1                        7 
##       werner bergengruen      juergen wittenstein         eugen grimminger 
##                        3                        2                        5 
##          josef furtmeier           josef soehngen          heinrich drexel 
##                        2                        2                        1 
##         dr. falk harnack             harald dohrn        gisela schertling 
##                        5                        2                        2 
##             lilo ramdohr   nikolajeff hamazaspian          angelika probst 
##                        4                        1                        2 
##           angelika knoop             elise probst             martin buber 
##                        1                        1                        1 
##    katharina schüddekopf kunsthistoriker stepanow     anneliese knoop-graf 
##                        2                        1                        2 
##              walter koch             dieter sasse             helmut bauer 
##                        1                        1                        1 
##          heinz bollinger          willi bollinger        alfred von martin 
##                        1                        1                        1 
##    sigismund von radecki          margareta rothe              albert suhr 
##                        1                        6                        5 
##          heinz kucharski            arvid harnack             hans leipelt 
##                        6                        1                       10 
##           reinhold meyer     hannelore willbrandt    karl ludwig schneider 
##                        7                        1                        7
# ego_size() zeigt uns den Wert mit den höchsten Verbindungen (degrees)
V(wr)$egos <- ego_size(wr)
vertex.attributes(wr)$egos
##  [1] 32 19 15 21 15 16  3 12  2  5  6  6  7  4  5  3  3  3  3  2  8  4  3
## [24]  6  3  3  2  6  3  3  5  2  3  2  2  2  3  2  3  2  2  2  2  2  2  2
## [47]  7  6  7  2 11  7  2  7
which.max(vertex.attributes(wr)$egos)
## [1] 1
## Code zur Erzeugung des Egonetzwerks
wr
## IGRAPH cce6c84 UN-- 54 144 -- 
## + attr: name (v/c), sex (v/n), age (v/n), hometown (v/n),
## | occupation (v/n), color (v/c), egos (v/n), relationship (e/c),
## | time (e/c), arrow.size (e/n), curved (e/n)
## + edges from cce6c84 (vertex names):
##  [1] hans scholl--sophie scholl       hans scholl--kurt huber         
##  [3] hans scholl--willi graf          hans scholl--hans leipelt       
##  [5] hans scholl--christoph probst    hans scholl--alexander schmorell
##  [7] hans scholl--fritz hartnagel     hans scholl--traute lafrenz     
##  [9] hans scholl--hubert furtwaengler hans scholl--theodor haecker    
## [11] hans scholl--hans hirzel         hans hirzel--susanne hirzel     
## + ... omitted several edges
ego1 <- make_ego_graph(wr, order = 1, nodes = V(wr)$name == "hans scholl", mode ="all")
ego1[[1]]
## IGRAPH 137612c UN-- 32 105 -- 
## + attr: name (v/c), sex (v/n), age (v/n), hometown (v/n),
## | occupation (v/n), color (v/c), egos (v/n), relationship (e/c),
## | time (e/c), arrow.size (e/n), curved (e/n)
## + edges from 137612c (vertex names):
##  [1] hans scholl--sophie scholl       hans scholl--kurt huber         
##  [3] hans scholl--willi graf          hans scholl--hans leipelt       
##  [5] hans scholl--christoph probst    hans scholl--alexander schmorell
##  [7] hans scholl--fritz hartnagel     hans scholl--traute lafrenz     
##  [9] hans scholl--hubert furtwaengler hans scholl--theodor haecker    
## [11] hans scholl--hans hirzel         hans hirzel--susanne hirzel     
## + ... omitted several edges
plot(ego1[[1]], 
     vertex.color="blue",
     vertex.frame.color="grey",
     edge.color="grey",
     main="Ego-Netzwerk von Hans Scholl")

V(wr)$egos <- ego_size(wr)
vertex.attributes(wr)$egos
##  [1] 32 19 15 21 15 16  3 12  2  5  6  6  7  4  5  3  3  3  3  2  8  4  3
## [24]  6  3  3  2  6  3  3  5  2  3  2  2  2  3  2  3  2  2  2  2  2  2  2
## [47]  7  6  7  2 11  7  2  7
## Code zur Erzeugung des Egonetzwerks
wr
## IGRAPH cce6c84 UN-- 54 144 -- 
## + attr: name (v/c), sex (v/n), age (v/n), hometown (v/n),
## | occupation (v/n), color (v/c), egos (v/n), relationship (e/c),
## | time (e/c), arrow.size (e/n), curved (e/n)
## + edges from cce6c84 (vertex names):
##  [1] hans scholl--sophie scholl       hans scholl--kurt huber         
##  [3] hans scholl--willi graf          hans scholl--hans leipelt       
##  [5] hans scholl--christoph probst    hans scholl--alexander schmorell
##  [7] hans scholl--fritz hartnagel     hans scholl--traute lafrenz     
##  [9] hans scholl--hubert furtwaengler hans scholl--theodor haecker    
## [11] hans scholl--hans hirzel         hans hirzel--susanne hirzel     
## + ... omitted several edges
ego2 <- make_ego_graph(wr, order = 1, nodes = V(wr)$name == "willi graf", mode ="all")
ego2[[1]]
## IGRAPH 4938ace UN-- 21 73 -- 
## + attr: name (v/c), sex (v/n), age (v/n), hometown (v/n),
## | occupation (v/n), color (v/c), egos (v/n), relationship (e/c),
## | time (e/c), arrow.size (e/n), curved (e/n)
## + edges from 4938ace (vertex names):
##  [1] hans scholl  --sophie scholl    hans scholl  --sophie scholl   
##  [3] hans scholl  --kurt huber       hans scholl  --kurt huber      
##  [5] sophie scholl--kurt huber       sophie scholl--kurt huber      
##  [7] hans scholl  --willi graf       hans scholl  --willi graf      
##  [9] sophie scholl--willi graf       sophie scholl--willi graf      
## [11] kurt huber   --willi graf       kurt huber   --willi graf      
## + ... omitted several edges
plot(ego2[[1]], 
     vertex.color="lightgreen",
     vertex.frame.color="grey",
     edge.color="grey",
     main="Ego-Netzwerk von Willi Graf")

V(wr)$egos <- ego_size(wr)
vertex.attributes(wr)$egos
##  [1] 32 19 15 21 15 16  3 12  2  5  6  6  7  4  5  3  3  3  3  2  8  4  3
## [24]  6  3  3  2  6  3  3  5  2  3  2  2  2  3  2  3  2  2  2  2  2  2  2
## [47]  7  6  7  2 11  7  2  7
## Code zur Erzeugung des Egonetzwerks
wr
## IGRAPH cce6c84 UN-- 54 144 -- 
## + attr: name (v/c), sex (v/n), age (v/n), hometown (v/n),
## | occupation (v/n), color (v/c), egos (v/n), relationship (e/c),
## | time (e/c), arrow.size (e/n), curved (e/n)
## + edges from cce6c84 (vertex names):
##  [1] hans scholl--sophie scholl       hans scholl--kurt huber         
##  [3] hans scholl--willi graf          hans scholl--hans leipelt       
##  [5] hans scholl--christoph probst    hans scholl--alexander schmorell
##  [7] hans scholl--fritz hartnagel     hans scholl--traute lafrenz     
##  [9] hans scholl--hubert furtwaengler hans scholl--theodor haecker    
## [11] hans scholl--hans hirzel         hans hirzel--susanne hirzel     
## + ... omitted several edges
ego2 <- make_ego_graph(wr, order = 1, nodes = V(wr)$name == "sophie scholl", mode ="all")
ego2[[1]]
## IGRAPH 13982dc UN-- 19 72 -- 
## + attr: name (v/c), sex (v/n), age (v/n), hometown (v/n),
## | occupation (v/n), color (v/c), egos (v/n), relationship (e/c),
## | time (e/c), arrow.size (e/n), curved (e/n)
## + edges from 13982dc (vertex names):
##  [1] hans scholl  --sophie scholl    hans scholl  --sophie scholl   
##  [3] hans scholl  --kurt huber       hans scholl  --kurt huber      
##  [5] sophie scholl--kurt huber       sophie scholl--kurt huber      
##  [7] hans scholl  --willi graf       hans scholl  --willi graf      
##  [9] sophie scholl--willi graf       sophie scholl--willi graf      
## [11] kurt huber   --willi graf       kurt huber   --willi graf      
## + ... omitted several edges
plot(ego2[[1]],
     vertex.color="orange",
     vertex.frame.color="grey",
     edge.color="grey",
     main="Ego-Netzwerk von Sophie Scholl")

V(wr)$egos <- ego_size(wr)
vertex.attributes(wr)$egos
##  [1] 32 19 15 21 15 16  3 12  2  5  6  6  7  4  5  3  3  3  3  2  8  4  3
## [24]  6  3  3  2  6  3  3  5  2  3  2  2  2  3  2  3  2  2  2  2  2  2  2
## [47]  7  6  7  2 11  7  2  7
## Code zur Erzeugung des Egonetzwerks
wr
## IGRAPH cce6c84 UN-- 54 144 -- 
## + attr: name (v/c), sex (v/n), age (v/n), hometown (v/n),
## | occupation (v/n), color (v/c), egos (v/n), relationship (e/c),
## | time (e/c), arrow.size (e/n), curved (e/n)
## + edges from cce6c84 (vertex names):
##  [1] hans scholl--sophie scholl       hans scholl--kurt huber         
##  [3] hans scholl--willi graf          hans scholl--hans leipelt       
##  [5] hans scholl--christoph probst    hans scholl--alexander schmorell
##  [7] hans scholl--fritz hartnagel     hans scholl--traute lafrenz     
##  [9] hans scholl--hubert furtwaengler hans scholl--theodor haecker    
## [11] hans scholl--hans hirzel         hans hirzel--susanne hirzel     
## + ... omitted several edges
ego2 <- make_ego_graph(wr, order = 1, nodes = V(wr)$name == "alexander schmorell", mode ="all")
ego2[[1]]
## IGRAPH 6a706f6 UN-- 16 60 -- 
## + attr: name (v/c), sex (v/n), age (v/n), hometown (v/n),
## | occupation (v/n), color (v/c), egos (v/n), relationship (e/c),
## | time (e/c), arrow.size (e/n), curved (e/n)
## + edges from 6a706f6 (vertex names):
##  [1] hans scholl  --sophie scholl    hans scholl  --sophie scholl   
##  [3] hans scholl  --kurt huber       hans scholl  --kurt huber      
##  [5] sophie scholl--kurt huber       sophie scholl--kurt huber      
##  [7] hans scholl  --willi graf       hans scholl  --willi graf      
##  [9] sophie scholl--willi graf       sophie scholl--willi graf      
## [11] kurt huber   --willi graf       kurt huber   --willi graf      
## + ... omitted several edges
plot(ego2[[1]], 
     vertex.color="green",
     vertex.frame.color="grey",
     edge.color="grey",
     main="Ego-Netzwerk von Alexander Schmorell")

V(wr)$egos <- ego_size(wr)
vertex.attributes(wr)$egos
##  [1] 32 19 15 21 15 16  3 12  2  5  6  6  7  4  5  3  3  3  3  2  8  4  3
## [24]  6  3  3  2  6  3  3  5  2  3  2  2  2  3  2  3  2  2  2  2  2  2  2
## [47]  7  6  7  2 11  7  2  7
## Code zur Erzeugung des Egonetzwerks
wr
## IGRAPH cce6c84 UN-- 54 144 -- 
## + attr: name (v/c), sex (v/n), age (v/n), hometown (v/n),
## | occupation (v/n), color (v/c), egos (v/n), relationship (e/c),
## | time (e/c), arrow.size (e/n), curved (e/n)
## + edges from cce6c84 (vertex names):
##  [1] hans scholl--sophie scholl       hans scholl--kurt huber         
##  [3] hans scholl--willi graf          hans scholl--hans leipelt       
##  [5] hans scholl--christoph probst    hans scholl--alexander schmorell
##  [7] hans scholl--fritz hartnagel     hans scholl--traute lafrenz     
##  [9] hans scholl--hubert furtwaengler hans scholl--theodor haecker    
## [11] hans scholl--hans hirzel         hans hirzel--susanne hirzel     
## + ... omitted several edges
ego2 <- make_ego_graph(wr, order = 1, nodes = V(wr)$name == "kurt huber", mode ="all")
ego2[[1]]
## IGRAPH a8dd554 UN-- 15 65 -- 
## + attr: name (v/c), sex (v/n), age (v/n), hometown (v/n),
## | occupation (v/n), color (v/c), egos (v/n), relationship (e/c),
## | time (e/c), arrow.size (e/n), curved (e/n)
## + edges from a8dd554 (vertex names):
##  [1] hans scholl  --sophie scholl    hans scholl  --sophie scholl   
##  [3] hans scholl  --kurt huber       hans scholl  --kurt huber      
##  [5] sophie scholl--kurt huber       sophie scholl--kurt huber      
##  [7] hans scholl  --willi graf       hans scholl  --willi graf      
##  [9] sophie scholl--willi graf       sophie scholl--willi graf      
## [11] kurt huber   --willi graf       kurt huber   --willi graf      
## + ... omitted several edges
plot(ego2[[1]], 
     vertex.color="red",
     vertex.frame.color="grey",
     edge.color="grey",
     main="Ego-Netzwerk von Kurt Huber")

V(wr)$egos <- ego_size(wr)
vertex.attributes(wr)$egos
##  [1] 32 19 15 21 15 16  3 12  2  5  6  6  7  4  5  3  3  3  3  2  8  4  3
## [24]  6  3  3  2  6  3  3  5  2  3  2  2  2  3  2  3  2  2  2  2  2  2  2
## [47]  7  6  7  2 11  7  2  7
## Code zur Erzeugung des Egonetzwerks
wr
## IGRAPH cce6c84 UN-- 54 144 -- 
## + attr: name (v/c), sex (v/n), age (v/n), hometown (v/n),
## | occupation (v/n), color (v/c), egos (v/n), relationship (e/c),
## | time (e/c), arrow.size (e/n), curved (e/n)
## + edges from cce6c84 (vertex names):
##  [1] hans scholl--sophie scholl       hans scholl--kurt huber         
##  [3] hans scholl--willi graf          hans scholl--hans leipelt       
##  [5] hans scholl--christoph probst    hans scholl--alexander schmorell
##  [7] hans scholl--fritz hartnagel     hans scholl--traute lafrenz     
##  [9] hans scholl--hubert furtwaengler hans scholl--theodor haecker    
## [11] hans scholl--hans hirzel         hans hirzel--susanne hirzel     
## + ... omitted several edges
ego2 <- make_ego_graph(wr, order = 1, nodes = V(wr)$name == "christoph probst", mode ="all")
ego2[[1]]
## IGRAPH de318a8 UN-- 15 60 -- 
## + attr: name (v/c), sex (v/n), age (v/n), hometown (v/n),
## | occupation (v/n), color (v/c), egos (v/n), relationship (e/c),
## | time (e/c), arrow.size (e/n), curved (e/n)
## + edges from de318a8 (vertex names):
##  [1] hans scholl  --sophie scholl    hans scholl  --sophie scholl   
##  [3] hans scholl  --kurt huber       hans scholl  --kurt huber      
##  [5] sophie scholl--kurt huber       sophie scholl--kurt huber      
##  [7] hans scholl  --willi graf       hans scholl  --willi graf      
##  [9] sophie scholl--willi graf       sophie scholl--willi graf      
## [11] kurt huber   --willi graf       kurt huber   --willi graf      
## + ... omitted several edges
plot(ego2[[1]], 
     vertex.color="yellow",
     vertex.frame.color="grey",
     edge.color="grey",
     main="Ego-Netzwerk von Christoph Probst")

# Netzwerk nochmals neu einlesen

edgelist <- read.csv("https://raw.githubusercontent.com/weisse-rose/Weisse-Rose/master/edgelist.csv",header=T, as.is=T, sep=",")
nodelist <- read.csv("https://raw.githubusercontent.com/weisse-rose/Weisse-Rose/master/nodelist.csv",header=T, as.is=T, sep=",")
edgematrix <-as.matrix(edges)
wr1 <- graph_from_data_frame(d=edgematrix, vertices=nodelist, directed=T)
wr1
## IGRAPH f2e0562 DN-- 54 144 -- 
## + attr: name (v/c), sex (v/n), age (v/n), hometown (v/n),
## | occupation (v/n), relationship (e/c), time (e/c)
## + edges from f2e0562 (vertex names):
##  [1] hans scholl     ->sophie scholl      
##  [2] hans scholl     ->kurt huber         
##  [3] hans scholl     ->willi graf         
##  [4] hans scholl     ->hans leipelt       
##  [5] hans scholl     ->christoph probst   
##  [6] hans scholl     ->alexander schmorell
##  [7] hans scholl     ->fritz hartnagel    
## + ... omitted several edges
# Beste Visualisierung
durchmesser <- layout_nicely(wr1)
durchmesser <- norm_coords(durchmesser, ymin=-1, ymax=1, xmin=-1, xmax=1)

plot(wr1,
     vertex.color="lightgreen", 
     vertex.size=50, 
     vertex.frame.color="lightgreen",
     edge.color="grey",
     edge.curved=.2, 
     edge.arrow.size=.1, 
     layout=durchmesser*13.0, 
     rescale=FALSE, 
     ylim=c(-13.0,15.0),
     xlim=c(-15.0,15.0),
     asp=0, 
     main="Gesamtnetzwerk Weiße Rose", 
     sub="entzerrte Darstellung")

largest_cliques(wr1)
## Warning in largest_cliques(wr1): At cliques.c:1087 :directionality of edges
## is ignored for directed graphs
## [[1]]
## + 7/54 vertices, named, from f2e0562:
## [1] hans scholl         sophie scholl       traute lafrenz     
## [4] kurt huber          christoph probst    alexander schmorell
## [7] hans leipelt       
## 
## [[2]]
## + 7/54 vertices, named, from f2e0562:
## [1] hans scholl         sophie scholl       willi graf         
## [4] kurt huber          christoph probst    alexander schmorell
## [7] hans leipelt
betweenness(wr, normalized = T)
##              hans scholl            sophie scholl               kurt huber 
##             0.4400754704             0.1347856244             0.0616530784 
##               willi graf         christoph probst      alexander schmorell 
##             0.2296066879             0.1141297704             0.1820272293 
##          fritz hartnagel           traute lafrenz      hubert furtwaengler 
##             0.0000000000             0.1386187712             0.0000000000 
##          theodor haecker              hans hirzel         franz j. mueller 
##             0.0000000000             0.0003144654             0.0012034349 
##           susanne hirzel           heinrich guter            heinz brenner 
##             0.0022375423             0.0009615385             0.0004837929 
##       manfred eickemeyer            wilhelm geyer          hellmut hartert 
##             0.0000000000             0.0000000000             0.0000000000 
##          eduard borchers          willi habermann                carl muth 
##             0.0000000000             0.0000000000             0.0049911305 
##       werner bergengruen      juergen wittenstein         eugen grimminger 
##             0.0000000000             0.0000000000             0.0000000000 
##          josef furtmeier           josef soehngen          heinrich drexel 
##             0.0000000000             0.0000000000             0.0000000000 
##         dr. falk harnack             harald dohrn        gisela schertling 
##             0.0378953412             0.0000000000             0.0000000000 
##             lilo ramdohr   nikolajeff hamazaspian          angelika probst 
##             0.0006220195             0.0000000000             0.0000000000 
##           angelika knoop             elise probst             martin buber 
##             0.0000000000             0.0000000000             0.0000000000 
##    katharina schüddekopf kunsthistoriker stepanow     anneliese knoop-graf 
##             0.0000000000             0.0000000000             0.0000000000 
##              walter koch             dieter sasse             helmut bauer 
##             0.0000000000             0.0000000000             0.0000000000 
##          heinz bollinger          willi bollinger        alfred von martin 
##             0.0000000000             0.0000000000             0.0000000000 
##    sigismund von radecki          margareta rothe              albert suhr 
##             0.0000000000             0.0013632594             0.0000000000 
##          heinz kucharski            arvid harnack             hans leipelt 
##             0.0013632594             0.0000000000             0.0634305946 
##           reinhold meyer     hannelore willbrandt    karl ludwig schneider 
##             0.0377358491             0.0000000000             0.0022340867
closeness(wr, normalized = T)
##              hans scholl            sophie scholl               kurt huber 
##                0.6973684                0.5888889                0.5698925 
##               willi graf         christoph probst      alexander schmorell 
##                0.5824176                0.5638298                0.5760870 
##          fritz hartnagel           traute lafrenz      hubert furtwaengler 
##                0.4274194                0.5247525                0.4140625 
##          theodor haecker              hans hirzel         franz j. mueller 
##                0.4608696                0.4568966                0.4491525 
##           susanne hirzel           heinrich guter            heinz brenner 
##                0.4608696                0.4416667                0.4240000 
##       manfred eickemeyer            wilhelm geyer          hellmut hartert 
##                0.4206349                0.4206349                0.4173228 
##          eduard borchers          willi habermann                carl muth 
##                0.4173228                0.4140625                0.4774775 
##       werner bergengruen      juergen wittenstein         eugen grimminger 
##                0.4416667                0.4274194                0.4774775 
##          josef furtmeier           josef soehngen          heinrich drexel 
##                0.4173228                0.4274194                0.4140625 
##         dr. falk harnack             harald dohrn        gisela schertling 
##                0.4529915                0.4274194                0.4274194 
##             lilo ramdohr   nikolajeff hamazaspian          angelika probst 
##                0.4529915                0.3680556                0.3840580 
##           angelika knoop             elise probst             martin buber 
##                0.3680556                0.3680556                0.3680556 
##    katharina schüddekopf kunsthistoriker stepanow     anneliese knoop-graf 
##                0.3897059                0.3732394                0.4015152 
##              walter koch             dieter sasse             helmut bauer 
##                0.3630137                0.3630137                0.3706294 
##          heinz bollinger          willi bollinger        alfred von martin 
##                0.3706294                0.3706294                0.3706294 
##    sigismund von radecki          margareta rothe              albert suhr 
##                0.3706294                0.3758865                0.3581081 
##          heinz kucharski            arvid harnack             hans leipelt 
##                0.3758865                0.3136095                0.5408163 
##           reinhold meyer     hannelore willbrandt    karl ludwig schneider 
##                0.3605442                0.2663317                0.3758865